package com.itlong.cloud.property.service;

import com.itlong.cloud.POJO.DTO.property.PropertyDeviceAlarmInfoDTO;
import com.itlong.cloud.POJO.VO.property.CloudElevatorVO;
import com.itlong.cloud.POJO.VO.property.PropertyDeviceAlarmInfoVO;
import com.itlong.cloud.utils.page.PageByVisitor;

/**
 * <desc>
 *      设备告警服务层接口
 * </desc>
 *
 * @createDate 2021/05/31
 **/
public interface IPropertyDeviceAlarmService {

    /**
     * <desc>
     *      实时抓拍或撤消告警
     * <desc/>
     *
     * @param  alarmInfoDTO 告警相关数据
     * @return
     * @author Juguang.S
     * @createDate 2021-05-31
     */
    void realTimeSnapshotOrCancelAlarm(PropertyDeviceAlarmInfoDTO alarmInfoDTO) throws Exception;

    /**
     * <desc>
     *      根据告警id查询电梯相关信息
     * <desc/>
     *
     * @param  alarmId 告警ID
     * @return
     * @author Juguang.S
     * @createDate 2021-05-31
     */
    CloudElevatorVO getElevatorInfoByAlarmId(String alarmId) throws Exception;

    /**
     * <desc>
     *      获取告警消息列表
     * </desc>
     *
     * @param alarmInfoDTO 获取获取告警消息列表DTO
     * @return 分页告警消息列表
     * @author Juguang.S
     * @createDate 2021/06/07
     */
    PageByVisitor<PropertyDeviceAlarmInfoVO> getPage(PropertyDeviceAlarmInfoDTO alarmInfoDTO) throws Exception;

    /**
     * <desc>
     *      修改设备告警消息的状态。
     * <desc/>
     *
     * @param  messageId 消息ID 多个以逗号隔开
     * @param  type 修改类型 0删除 1修改状态为已读
     * @return
     * @author Juguang.S
     * @createDate 2021/06/07
     */
    void updateMessageInfo(String messageId,String type);
}
